| ..:: Menu ::.. | ..:: Lekcja 4: Podstawy Object Pascala część: 7 ::.. | ..::Info i Reklamy::.. |
|
Strona Główna Kursy DELPHI Kursy C++ Linki Forum Download Seriale Humor Reklama O autorze |
ModułyDotąd wykorzystywaliśmy moduły gotowe, dostarczone wraz z Delphi. Teraz stworzymy swój moduł. Możemy w nim zamieszczać procedury i funkcje, które później będą wykorzystywane w programie. Nowy moduł możesz utworzyć z menu File wybierając New. W oknie, które się pojawi kliknij na ikonę Unit. W edytorze kody pojawi się nowa zakładka. Jej zawartość wygląda tak:unit Unit1; interface implementation end. Otóż KAŻDY moduł musi się składać ze słów kluczowych interface oraz implementation. W sekcji Interface wpisuje się tylko nagłówek procedury lub funkcji, czyli jej nazwę. Fachowo nazywa się to deklaracją. W sekcji Implementation natomiast treść procedury/funkcji. Zapisz moduł wybierając z menu File -> Save All. Podaje nazwę modułu - ja podałem nazwę Tools - Delphi stworzył plik Tools.pas. Zauważysz, ze w programie, w miejscu gdzie wypisane są moduły dodany został nowy - nasz: uses Windows, SysUtils, Dialogs, Tools in 'Tools.pas'; Dobrze. Zajmijmy się naszym modułem. Doprowadź go do takiej postaci: unit Tools; interface uses Windows; { deklaracje } procedure About; function DoPotegi(Liczba: Integer) : Integer; implementation { definicje } function DoPotegi(Liczba: Integer) : Integer; begin Result := Liczba * Liczba; end; procedure About; begin MessageBox(0, '© by A.B.', 'O programie...', MB_OK); end; end. Zapisz swój moduł. Teraz w programie do listy uses możesz dodać nazwę swojego modułu - Tools. W programie możesz wykorzystać procedury, które zadeklarowałeś w swoim module pisząc po prostu nazwę tej procedury. Musisz wiedzieć, że to co jest zawarte w sekcji implementation modułu nie będzie widoczne dla innych modułów. Znaczy to, że program będzie ciągle wyświetlał błąd, że nie wie co to za procedura, której chcesz użyć. Możesz więc pisać w module procedury bez deklarowania ich w sekcji interface pod warunkiem, że nie chcesz, aby były wykorzystywane w innych modułach. Dodatkowo masz możliwość umieszczenia w module dwóch słów kluczowych, które są opcjonalne. Są to initialization oraz finalization. Umieszczasz je przed słowem kluczowym end. ( z kropką! ). Po słowie initialization możesz zapisać instrukcje, które będą wykonywane na samym początku, a po finalization są zapisywane instrukcje, które mają być wykonane przed zakończeniem programu. { instrukcje modułu... } initialization ShowMessage('Rozpoczącie pracy z modułem.'); finalization ShowMessage('Koniec pracy z modułem.'); end. RekordyRekordy to taka paczuszka. Jest to jeden typ ( lub zmienna ), która może zawierać w sobie inne zmienne.type TDane = record { <-- brak średnika na końcu! } Imie: String; Nazwisko: String; end; Właśnie zadeklarowałeś nowy typ. Jest to rekord. Zawiera on w sobie inne zmienne. Rekordy mają specyficzną budowę. Deklaruje się je poprzez słowo kluczowe record. Na początku zapewne trudno Ci będzie zrozumieć istotę stosowania rekordów. Sprawdźmy to w praktyce. Na początek trzeba stworzyć zmienną, która będzie wskazywać na rekord: var Dane : TDane; // zmienna wskazuje na rekord Następnie należy wypełnić pola rekordu. Cały kod programu wygląda teraz tak: { Copyright (c) 2001 - Adam Boduch } program rekord; uses Windows; type TDane = record { <-- brak średnika! } Imie: String; Nazwisko: String; end; var Dane : TDane; // zmienna wskazuje na rekord begin Dane.Imie := 'Adam'; Dane.Nazwisko := 'Boduch'; MessageBox(0, PChar('Nazywam się: ' + Dane.Imie + ' ' + Dane.Nazwisko), 'Hiehie', MB_OK); end. Użyliśmy tutaj operatora, który nie został omówiony wcześniej. Operator ten to . Tak kropka... Jest to operator odwołania. W przyszłych rozdziałach operatora tego będziemy używali całkiem często. Za jego pomocą możemy odwołać się do poszczególnych elementów obiektu. W tym wypadku elementem obiektu są zmienne zawarte w rekordzie, a samym obiektem rekord. Tak więc do zmiennych zawartych w rekordzie przypisujemy wartości. Następnie w okienku wartości te są wyświetlone. W Delphi 5 ( w Delphi 4 także ) zastosowano pewne ułatwienie. Mamy możliwość "podglądu" jakie elementy znajdują się w rekordzie. Wystarczy, że po nazwie obiektu ( tzn., zmiennej, która wskazuje na rekord ) postawimy kropkę i odczekamy parę sekund. Pojawi się takie okienko: Żeby stworzyć rekord niekoniecznie trzeba deklarować nowy typ. Można to zrobić od razu w zmiennej: var Dane : record { <-- brak średnika! } Imie: String; Nazwisko: String; end; Trzeba jednak uważać, aby nie postawić znaku równości ( = ). Jeżeli deklarujesz rekord jako zmienną to stawiasz znak dwukropka tak jak to zostało pokazane na powyższym kodzie. Podczas zapisywania rekordów możesz przed słowem record dodać jeszcze jedno - packed. Powoduje ono zmniejszenie rozmiaru jaki zajmuje rekord w pamięci komputera. Różne zmienne zajmuje w pamięci określoną ilość bajtów. W rekordzie dodaje się wszystkie zmienne ( ilość bajtów zajmowanych przez zmienne ) i wiemy ile zajmuje w pamięci rekord. Jeżeli nie użyjesz słowa packed to ta ilość zaokrąglana jest dodatkowo do 8 bajtów. Tak więc uzycie słowa kluczowego packed powoduje pakowanie rekordu. Instrukcja wiążąca withInstrukcja ta nie robi nic specjalnego. Po prostu ułatwia programiście pracę. Zamiast pisać:Dane.Imie := 'Adam'; Dane.Nazwisko := 'Boduch'; Można zastosować instrukcję wiążącą i zmniejszyć ilość wypisanych słów: with Dane do begin Imie := 'Adam'; Nazwisko := 'Boduch'; end; Wszystkie elementy. <--- Wstecz | Dalej ---> |
Reklama To miejsce czeka na twoją reklame. Więcej informacji w dziale Reklama |